Don't crash and don't leak. (#439565, Pedro Villavicencio)
authorMatthias Clasen <mclasen@redhat.com>
Fri, 25 May 2007 16:29:14 +0000 (16:29 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 25 May 2007 16:29:14 +0000 (16:29 +0000)
2007-05-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkiconview.c (gtk_icon_view_accessible_ref_child):
        Don't crash and don't leak.  (#439565, Pedro Villavicencio)

svn path=/trunk/; revision=17913

ChangeLog
gtk/gtkiconview.c

index 6993637c657c7f3c7f333be7e2a446f4acdce235..889dd36dcbf1c6ede50c4c4055865be2e239f2b1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-25  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkiconview.c (gtk_icon_view_accessible_ref_child):
+       Don't crash and don't leak.  (#439565, Pedro Villavicencio)
+
 2007-05-25  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkiconfactory.c: Improve a warning
index 993d670c2c7e3bb22c3c916768efa7782beff905..69f860f0b0d6d79d30083bdd94139a9bfc796bef 100644 (file)
@@ -8328,6 +8328,8 @@ gtk_icon_view_accessible_ref_child (AtkObject *accessible,
       obj = gtk_icon_view_accessible_find_child (accessible, index);
       if (!obj)
         {
+          gchar *text;
+
           obj = g_object_new (gtk_icon_view_item_accessible_get_type (), NULL);
           gtk_icon_view_item_accessible_info_new (accessible,
                                                   obj,
@@ -8339,8 +8341,12 @@ gtk_icon_view_accessible_ref_child (AtkObject *accessible,
           a11y_item->text_buffer = gtk_text_buffer_new (NULL);
 
          gtk_icon_view_set_cell_data (icon_view, item);
-          gtk_text_buffer_set_text (a11y_item->text_buffer, 
-                                   get_text (icon_view, item), -1);
+          text = get_text (icon_view, item);
+          if (text)
+            {
+              gtk_text_buffer_set_text (a11y_item->text_buffer, text, -1);
+              g_free (text);
+            } 
 
           gtk_icon_view_item_accessible_set_visibility (a11y_item, FALSE);
           g_object_add_weak_pointer (G_OBJECT (widget), (gpointer) &(a11y_item->widget));